Print control method and apparatus

ABSTRACT

When “store” of intermediate data is designated in a print process, a spooler stores intermediate data and an output job setup file in a spool file. When the stored job is selected, a previewer displays a list of jobs, and displays a print preview image. In this case, pages are displayed so that a page with the maximum size just falls within a display window, and other pages are displayed in the same scale as that of the maximum page.

This application is a divisional application of U.S. application Ser.No. 09/703,684 filed Nov. 2, 2000, now U.S. Pat. No. 6,961,135 nowallowed, which is incorporated herein by reference.

FIELD OF THE INVENTION

The present invention relates to a print control method, apparatus, anda computer program for controlling the apparatus and, more particularly,to a print control method and apparatus in a system including aninformation processing apparatus such as a personal computer or thelike, and a printer.

BACKGROUND OF THE INVENTION

Upon printing data such as text data, image data, or the like edited byan application program for editing text or image data, a print previewfunction that presents an image to be printed on the screen in a printlayout to the user before the image is actually printed on a paper sheetis known. The print preview function is included in the applicationprogram, and has only a function of displaying a preview image.

The user checks an image to be printed exploiting this print previewfunction, and can re-edit it by the application program until an ideallayout is realized.

However, the print preview function provided by the application programcannot display, as a preview image, an image which reflects variousprint conditions that a printer driver can set. Also, the user must setthe size or the like of a preview image in accordance with the screensize, resulting in troublesome operation. For example, even when theuser wants to simultaneously display preview images for several pages,the application program displays them with an arbitrary size and layoutin response to a preview display instruction. For this reason, the usermust re-set the size and layout after display. Even when the userre-sets them, a preview image is not always displayed according to thatlayout in which the image is to be printed.

SUMMARY OF THE INVENTION

The present invention has been made in consideration of theaforementioned prior art, and has as its object to provide a printcontrol method and apparatus, which make preview display that reflectsthe print layout as faithfully as possible and is most easy to seewithout requiring the user to designate any layout for preview display,upon making print preview display.

More specifically, it is another object of the present invention toprovide a print control method and apparatus, which display a previewimage of a document including pages with various sizes and directions sothat a page with a maximum vertical size just fits in a preview displaywindow, can efficiently use the display space, allow the user to previewthe entire page by horizontally scrolling the display window, allow theuser to visually understand relative page sizes in preview display byzooming other pages at the same ratio as the maximum page, and alsoallow the user to recognize not only the relative size but also theactual size by displaying the size of the designated page.

In order to achieve the above object, one aspect of the presentinvention has the following arrangement.

That is, a print control apparatus comprises:

search means for searching pages included in a print job for a page witha maximum size;

zoom means for zooming all pages included in the print job in a scale atwhich the page with the maximum size falls within a predetermined frame;and

display means for displaying preview images of all the zoomed pages.

Preferably, when a page is deleted from the stored print job, pagesincluded in the print job are searched again for a page with a maximumsize, and all pages included in the print job are displayed as previewimages in a scale at which the page with the maximum size falls withinthe frame.

Preferably, the scale at which the page with the maximum size fallswithin the frame is a scale at which a vertical dimension of the pagewith the maximum size becomes smaller than a vertical dimension of theframe.

Preferably, when a page displayed within the frame is designated, a sizeof the designated page is displayed.

The apparatus preferably further comprises means for printing the storedprint job.

The apparatus preferably further comprises storage means for storingprint data in units of print jobs.

Other features and advantages of the present invention will be apparentfrom the following description taken in conjunction with theaccompanying drawings, in which like reference characters designate thesame or similar parts throughout the figures thereof.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate embodiments of the invention and,together with the description, serve to explain the principles of theinvention.

FIG. 1 is a block diagram for explaining the arrangement of a printcontrol apparatus according to an embodiment of the present invention;

FIG. 2 is a block diagram showing the arrangement of a typical printsystem built by a host computer to which a printer is connected;

FIG. 3 is a block diagram showing the arrangement of a print systemwhich temporarily spools intermediate codes before a print command froman application is converted into a print control command;

FIG. 4 is a sectional view for explaining the printer in the presentinvention;

FIG. 5 is a flow chart showing the process in a spooler 302;

FIG. 6 is a flow chart showing print control in a spool file manager304;

FIG. 7 is a flow chart showing the process in a despooler 305;

FIG. 8 shows an example of a print setup window;

FIG. 9 shows an example of a print spool setup window;

FIG. 10 shows an example of a data format to be passed when the spoolfile manager 304 issues a print request of a physical page to thedespooler 305;

FIG. 11 shows an example of a data format to be passed when the spoolfile manager 304 issues a print request of a physical page to thedespooler 305;

FIG. 12 shows an example of a data format to be passed when the spoolfile manager 304 issues a print request of a physical page to thedespooler 305;

FIG. 13 shows an example of a data format to be passed when the spoolfile manager 304 issues a print request of a physical page to thedespooler 305;

FIG. 14 shows an example of a data format to be passed when the spoolfile manager 304 issues a print request of a physical page to thedespooler 305;

FIG. 15 is a flow chart showing a setup change process in a setup changeeditor 307;

FIG. 16 shows an example of a window that displays a list of print jobsspooled in the spool file manager 304;

FIG. 17 shows an example of a window of a previewer 306;

FIG. 18 shows an example of a window of the setup change editor 307;

FIG. 19 is a flow chart showing the process when data created by anapplication program or the like is printed with store designation;

FIG. 20 is a flow chart showing details of step S1903 in FIG. 19;

FIG. 21 is a flow chart showing the processing sequence upon operationof an edit button or combine button while a job is selected from a joblist;

FIG. 22 is a flow chart showing the sequence for displaying a previewwindow upon operation of an edit button or combine button while a job isselected from a job list;

FIG. 23 is a flow chart showing details of step S2203 in FIG. 22;

FIG. 24 is a flow chart showing details of step S2204 in FIG. 22;

FIG. 25 is a flow chart showing details of step S2205 in FIG. 22;

FIG. 26 shows a display example of a job list;

FIG. 27 is a flow chart showing the sequence for rendering a pagetemplate;

FIG. 28 shows an example of preview display of pages having differentsizes or directions; and

FIG. 29 shows an example of preview display when a page with a maximumsize is deleted from the display shown in FIG. 28.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Preferred embodiments of the present invention will be describedhereinafter.

<Arrangement of Printer Control System>

FIG. 1 is a block diagram for explaining the arrangement of a printercontrol system according to an embodiment of the present invention. Notethat the present invention can be applied to any of a standalone device,a system built by a plurality of devices, and a system in which devicesare connected via a network such as a LAN, WAN, or the like to executeprocesses, as long as the functions of the present invention areimplemented.

Referring to FIG. 1, a host computer 3000 comprises a CPU 101 thatprocesses a document including figures, images, text, tables (includinga spreadsheet or the like), and the like on the basis of a documentprocessing program stored in a program ROM in a ROM 3 or an externalmemory 111, and systematically controls devices connected to a systembus 104. The program ROM in the ROM 103 or external memory 111 stores anoperating system program (to be referred to as an OS hereinafter) or thelike as a control program of the CPU 101, a font ROM in the ROM 103 orthe external memory 111 stores font data or the like used in thedocument process, and a data ROM in the ROM 103 or the external memory111 stores various data used upon executing the document process. A RAM102 serves as a main memory, work area, and the like of the CPU 101.

A keyboard controller (KBC) 105 controls key input from a keyboard 109and a pointing device (not shown). A CRT controller (CRTC) 106 controlsdisplay of a CRT display (CRT) 110. Reference numeral 107 denotes a diskcontroller (DKC) which controls access to the external memory 111 suchas a hard disk (HD), floppy disk (FD), and the like, which store a bootprogram, various application programs, font data, user files, editfiles, a printer control command generation program (to be referred toas a printer driver hereinafter), and the like. A printer controller(PRTC) 108 is connected to a printer 1500 via a two-way interface(interface) 121 to implement a communication control process with theprinter 1500.

Note that the CPU 101 rasterizes outline font data on a displayinformation RAM assured on, e.g., the RAM 102 to realize WYSIWYG on theCRT 110. The CPU 101 opens various registered windows on the basis ofcommands instructed by a mouse cursor (not shown) or the like on the CRT110, and executes various data processes. The user can set a printprocessing method for the printer driver including the printer setup andprint mode selection by opening a window that pertains to the printsetups upon executing a print process.

The printer 1500 is controlled by a CPU 112. The printer CPU 112 outputsan image signal as output information to a print unit (printer engine)117, which is connected to a system bus 115, on the basis of a controlprogram or the like stored in a program ROM in a ROM 113, or a controlprogram or the like stored in an external memory 114. The program ROM inthe ROM 113 stores the control program and the like of the CPU 112. Afont ROM in the ROM 113 stores font data or the like used upongenerating the output information, and a data ROM in the ROM 113 storesinformation and the like used on the host computer when the printer hasno external memory 114 such as a hard disk or the like.

The CPU 112 can communicate with the host computer via an input unit118, and can inform the host computer 3000 of information or the like inthe printer. A RAM 119 serves as a main memory, work area, and the likeof the CPU 112, and its memory size can be expanded by an option RAMconnected to an expansion port (not shown). Note that the RAM 119 isused as an output information rasterizing area, environment data storagearea, NVRAM, and the like. Access to the aforementioned external memory114 such as a hard disk (HD), IC card, or the like is controlled by amemory controller (DKC) 120. The external memory 114 is connected as anoption, and stores font data, an emulation program, form data, and thelike. Reference numeral 1501 denotes a control panel on which operationswitches, LED indicators, and the like are arranged.

The number of external memories 114 is not limited to one, but aplurality of external memories 114 may be connected. That is, aplurality of option font cards in addition to built-in fonts andexternal memories that store programs for interpreting printer controllanguages of different language systems may be connected. Furthermore,an NVRAM (not shown) may be connected, and may store printer mode setupinformation from the control panel 1501.

FIG. 2 shows the configuration of typical print processing software inthe host computer to which a printing apparatus such as a printer or thelike is connected directly or via a network. An application program (tobe simply referred to as an application hereinafter) 201, graphic engine202, printer driver 203, and system spooler 204 are program moduleswhich are stored as files in the external memory 111, and are loadedonto the RAM 102 by the OS or a module that uses the correspondingmodule upon execution. The application 201 and printer driver 203 can beadded to the files stored in the HD using the FD in the external memory111 or a CD-ROM (not shown), or via a network (not shown). Theapplication 201 stored in the external memory 111 is loaded onto the RAM102 upon execution. When the application 201 executes a print processwith respect to the printer 1500, it outputs (renders) data using thegraphic engine 202 which is similarly loaded onto the RAM 102 uponexecution.

The graphic engine 202 loads a printer driver 203 which is prepared foreach printing apparatus from the external memory 111 onto the RAM 102,and sets the output from the application 201 in the printer driver 203.The graphic engine 202 then converts a GDI (Graphic Device Interface)function received from the application 201 into a DDI (Device DriverInterface) function, and outputs the DDI function to the printer driver203. The printer driver 203 converts the DDI function received from thegraphic engine 202 into a control command, e.g., PDL (Page DescriptionLanguage) that the printer can recognize. The converted printer controlcommand is output as print data to the printer 1500 via the interface121 by the system spooler 204 which is loaded onto the RAM 102 by theOS.

The print system of this embodiment also has an arrangement fortemporarily spooling print data from the application as intermediatecodes, as shown in FIG. 3, in addition to the print system constructedby the printer and host computer shown in FIG. 2.

<Print-related Software Modules in Embodiment>

FIG. 3 shows the expanded system of FIG. 2. This system temporarilygenerates a spool file 303 consisting of intermediate codes upon sendinga print command from the graphic engine 202 to the printer driver 203.In the system shown in FIG. 2, the application 201 is released from theprint process when the printer driver 203 has converted all printcommands from the graphic engine 202 into printer control commands. Bycontrast, in the system shown in FIG. 3, a spooler 302 converts allprint commands into intermediate code data, and the application 201 isreleased from the print process when it outputs print commands to thespool file 303. Normally, the latter system can shorten the processingtime. In the system shown in FIG. 3, data as the contents of the spoolfile 303 can be processed. In this way, functions such asenlargement/reduction, reduced-scale print of a plurality of pages onone page, and the like that the application does not have can beimplemented for print data from the application.

For these purposes, the system of this embodiment is attained byexpanding the system shown in FIG. 2 to spool data as intermediatecodes, as shown in FIG. 3. In order to process print data, setups arenormally made from a window provided by the printer driver 203, whichsaves the setup contents on the RAM 102 or external memory 111.

The arrangement in FIG. 3 will be explained in detail below. As shown inFIG. 3, in this expanded processing system, a dispatcher 301 receives aDDI function as a print command from the graphic engine 202. When theprint command (DDI function) that the dispatcher 301 receives from thegraphic engine 202 is based on a print command (GDI function) issuedfrom the application 201 to the graphic engine 202, the dispatcher 301loads the spooler 302 stored in the external memory 111 onto the RAM102, and sends the print command (DDI function) to the spooler 302 inplace of the printer driver 203.

The spooler 302 interprets the received print command, converts it intointermediate codes in units of pages, and outputs the codes to the spoolfile 303. The spool file of intermediate codes stored in units of pagesis called a page description file (PDF). Since one PDF corresponds toone print job, the spooled PDF is also often called a job or print jobsimply. The spooler 302 acquires processing setups (N-up, two-side,staple, color/monochrome designation, or the like) associated with printdata set in the printer driver 203 from the printer driver 203, andsaves them as a setup file for each job in the spool file 303. The setupfile stored in units of jobs is called a job setup file (also called anSDF as an abbreviation for a spool description file). The job setup filewill be described later. Note that the spool file 303 is generated as afile on the external memory 111, but may be generated on the RAM 102.Furthermore, the spooler 302 loads a spool file manager 304 stored inthe external memory 111 onto the RAM 102, and informs the spool filemanager 304 of the generation state of the spool file 303. After that,the spool file manager 304 checks if a print process can be done inaccordance with the contents of the processing setups associated withprint data, which are saved in the spool file 303.

If the spool file manager 304 determines that the print process can bedone using the graphic engine 202, it loads a despooler 305 stored inthe external memory 111 onto the RAM 102, and instructs the despooler305 to execute the print process of the page description files ofintermediate codes described in the spool file 303.

The despooler 305 processes the page description files of intermediatecodes included in the spool file 303 in accordance with the job setupfile which is included in the spool file 303 and includes processingsetup information, re-generates a GDI function, and outputs it via thegraphic engine 202 once again.

When the print command (DDI function) that the dispatcher 301 receivesfrom the graphic engine 202 is based on a print command (GDI function)issued from the despooler 305 to the graphic engine 202, the dispatcher301 sends the print command to the printer driver 203 in place of thespooler 302.

The printer driver 203 generates a printer control command described ina page description language or the like on the basis of the DDI functionacquired from the graphic engine 202, and outputs the generated commandto the printer 1500 via the system spooler 204.

Furthermore, FIG. 3 shows an example which includes a previewer 306 andsetup change editor 307 in addition to the expanded system described sofar, and allows a print preview process, print setup change process, andcombination process of a plurality of jobs.

In order to implement the print preview process, print setup changeprocess, and combination process of a plurality of jobs, the user mustdesignate “store” on a pull-down menu 901 as a means for “designating anoutput destination” in a property window of the printer driver shown inFIG. 9. When the user wants to only preview, he or she can select“preview” as designation of the output destination.

The contents set on the property window of the printer driver in thisway are stored in a structure (for example, a structure called DEVMODEin Windows OS available from Microsoft Corp.) provided by the OS as asetup file. That structure includes, e.g., store designation. Storedesignation is a setup for storing a print command and processing setupin the spool file 303. When the spool file manager 304 reads theprocessing setup via the printer driver 203 and that setup includesstore designation, the spool file 303 generates and stores a pagedescription file and job setup file, as described above. Then, thewindow of the spool file manager 304 pops up, as shown in FIG. 16, anddisplays a list of jobs spooled by the spool file 303. FIG. 16 shows anexample wherein four jobs are spooled, and operations for each job canbe selected from a menu bar or by pressing menu icons below the menubar. Operations that can be selected from the menu bar are the same asthose of the menu icons. The following types of operations areavailable. Note that each operation is done while select ing a desiredjob. That is, there are 12 operations:

(1) “print”: executes a given job while selecting that job. That is,this operation prints the designated spool file.

(2) “save & print”: executes a print process while saving a job of theselected intermediate codes.

(3) “preview”: displays output preview in consideration of the printsetups.

(4) “delete”: deletes the selected job.

(5) “copy”: generates a copy of the selected job.

(6) “combine”: combines a plurality of jobs into one job.

(7) “divide”: divides the combined job into a plurality of originaljobs.

(8) “job edit” changes the print setups (layout setup, finishing setup,and the like) of an independent or combined job.

(9) “move to top”: moves the print order of a given job to the top of ajob list.

(10) “move up by one”: advances the print order of a given job by one.

(11) “move down by one”: delays the print order of a given job by one.

(12) “move to last”: moves the print order of a given job to the last ofa job list.

When “preview” of an independent or combined job is designated on thewindow (FIG. 16) of the spool file manager, the previewer 306 stored inthe external memory 111 is loaded onto the RAM 102, and is instructed toexecute a preview process of a job of the intermediate codes describedin the spool file 303. (Previewer)

The previewer 306 sequentially reads out page description files (PDF) ofintermediate codes included in the spool file 303, processes them inaccordance with the contents of processing setup information included inthe job setup file (SDF) stored in the spool file 303, and outputs a GDIfunction to the graphic engine 202. The graphic engine 202 can output apreview window onto the screen by outputting rendering data on its ownclient area.

The graphic engine 202 can appropriately render in correspondence withthe designated output destination. The previewer 306 implements previewby the method of processing intermediate codes included in the spoolfile 303 in accordance with the contents of the processing setupsincluded in the spool file 303 and outputting them using the graphicengine as in the despooler 305. In this way, since the processing setupsset in the printer driver are stored as a job setup file in the spoolfile 303 and data of the page description file are processed and outputbased on the job setup file, a print preview approximate to an actualprintout can be provided to the user in correspondence with the wayactual rendering data is printed, and designated processes (e.g., anN-up process (for laying out and printing N logical pages on onephysical page), a two-sided print process, a bookbinding print process,a stamp process, and the like). Since the preview function ofconventional application software such as document creation softwarerenders based on page setups in that application, the print setups inthe printer driver are not reflected in preview, and the user cannotrecognize a preview of an image to be actually printed out.

One logical page is one page in data created by the application, and onephysical page corresponds to one surface of one sheet (e.g., one papersheet). More specifically, when the N-up process is designated, imagesfor N pages created by the application are laid out and printed on asingle sheet in a reduced scale.

By executing the preview process in this fashion, a large preview imageof an image processed in accordance with the print processing setupssaved in the spool file 303 is displayed on the screen by the previewer306, as shown in FIG. 17. After that, the previewer 306 is closed inresponse to the user's non-display instruction (designation of “close)),and the control shifts to the window (FIG. 16) of the spool filemanager.

When the user wants to print the contents displayed by the previewer306, he or she issues a print request by selecting “print” or “save &print” on the spool file manager 304. In response to the print request,the despooler 305 generates a GDI function by processing each pagedescription file based on the job setup file, and passes it to thegraphic engine 202. Then, a print command is sent to the printer driver203 via the dispatcher 301, thus executing the print process.

(Setup Change Editor)

A setup change process using the setup change editor 307 will beexplained below.

The setup change process can be done for a “store”-designated job inFIG. 9 as in the preview process. The window of the spool file manager304 pops up in the same sequence as in the preview process, and displaysa list of spooled jobs. A setup change instruction is issued bydesignating “job edit” for the selected spool file on the window (FIG.16) of the spool file manager. When the setup change instruction isissued, the setup change editor 307 stored in the external memory 111 isloaded onto the RAM and is instructed to display current or defaultprocessing setups. Then, a job setup window shown in FIG. 18 isdisplayed.

The setup change editor 307 acquires the job setup file of the “jobedit”-designated job, and default values of the job setup window in FIG.18 are changed on the basis of setup items designated in that job setupfile. In the example shown in FIG. 18, the job setup file of the “jobedit”-designated file is designated with the number of copies: 1, printmethod: one-sided, staple: none, layout: 1 page/sheet, and the like.

This setup change editor 307 can also make a small preview output on thewindow shown in FIG. 18 by processing each page description file ofintermediate codes stored in the spool file 303 in accordance with thecontents of the processing setups included in the job setup file storedin the spool file 303, and outputting them onto its own client areausing the graphic engine.

Also, this editor can change and correct the contents of the processingsetups included in the job setup file stored in the spool file 303. Inthis case, the user interface on the setup change editor 307 may haveitems that the printer driver 203 can set, or the user interface of theprinter driver 203 itself may be called. As shown in FIG. 18, the numberof copies, the print method (one-side, two-side, bookbinding print),staple (saddle finisher, or the like), page layout, layout order, andthe like can be designated. Upon pressing “detailed setups”, most ofitems that the printer driver can designate can be re-set. However,changes of setups that pertain to print quality such as the resolution,graphic mode, and the like are not permitted.

When the changed items are confirmed in accordance with a confirmationrequest on the setup change editor 307, the control shifts to the spoolfile manager 304. The confirmed print setups that have been changed aresaved. In this case, the setups are not saved in an original job setupfile, but a new job output setup file used in the job edit process orthe like is created to save the setups. Details of the job output setupfile will be described later using FIG. 10 and the subsequent figures.

If the user wants to print in accordance with the changed setup contentsas in the previewer 306, the spool file manager 304 issues a printrequest. The print request is sent to the graphic engine 202, and aprint command is sent to the printer driver 203 via the dispatcher 301,thus executing the print process.

On the window (FIG. 16) of the spool file manager, the user candesignate to combine a plurality of print jobs to execute them as asingle print job. This process is also premised on the“store”-designated job on the property window of the printer drivershown in FIG. 9 as in the preview and setup change processes.

When the user wants to combine print jobs, he or she calls the printerdriver 203 from the application 201, and selects “store” from the userinterface shown in FIG. 9. With this selection, the print job is storedin the spool file 303, and the window (FIG. 16) of the spool filemanager pops up, as shown in FIG. 16. The spooled job is displayed as alist on the window of the spool file manager. By repeating the sameoperation from the application 201, a plurality of jobs are spooled, anda list of jobs is displayed on the window of the spool file manager 304.

When the user selects a plurality of jobs from the list and designates“combine”, the setup change editor 307 stored in the external memory 111is loaded onto the RAM 102 and is instructed to display the processingsetups of the first job on the list or default setups. Then, a combinesetup window shown in FIG. 18 is displayed. In this embodiment, the samewindow as the setup change window is used as the combine setup window,but another window may be used.

The setup change editor 307 processes each page description file ofintermediate codes included in the spool file 303 in accordance with thecontents of the processing setups included in job setup informationstored in the spool file 303, and outputs the processed data for alljobs designated as the combined job to its own client area using thegraphic engine 202, thus outputting these jobs on the screen. In thiscase, small preview images of all the selected jobs can be displayed onthe preview region shown in FIG. 18. Upon generating the combined job, ajob output setup file that expands the job setup files of the individualjobs is generated. This job output setup file is also generated in thejob edit process. That is, one job output setup file is generated foreach job and also for the combined job.

In this case, images of the individual jobs may be displayed using theprocessing setups before they are combined, or may be displayed bychanging and correcting their setups to common processing setups of thecombined job. In this case, the user interface on the setup changeeditor 307 may have items that the printer driver 203 can set, or theuser interface of the printer driver 203 itself may be called.

When the combined job and changed items are confirmed in accordance witha confirmation request on the setup change editor 307, as describedabove, the control shifts to the spool file manager 304. With theseoperations, the plurality of jobs selected previously are displayed as asingle combined job on the window of the spool file manager.

When the user wants to print in accordance with the changed setupcontents as in the previewer 306, the spool file manager 304 issues aprint request. The print request is sent to the graphic engine 202, anda print command is sent to the printer driver 203 via the dispatcher301, thus executing the print process.

<Arrangement of Laser Beam Printer>

FIG. 4 is a sectional view of a color laser printer having a two-sidedprint function as an example of the printer 1500.

This printer forms an electrostatic latent image by scanning the surfaceof a photosensitive drum 15 with a laser beam modulated by image data ofeach color obtained based on print data input from the host computer3000 by a polygonal mirror 31. The electrostatic latent image isdeveloped by toner to obtain a visible image, and visible images of allcolors are transferred in turn onto an intermediate transfer drum 9 toform a color visible image. The color visible image is transferred ontoa transfer medium 2, thus fixing the color visible image on the transfermedium 2. An image forming unit that makes the aforementioned controlcomprises a drum unit 13 having the photosensitive drum 15, a primarycharger having a contact charging roller 17, a cleaning unit, adeveloping unit, the intermediate transfer drum 9, a paper feed unitincluding a paper cassette 1 and various rollers 3 and 4, a transferunit including a transfer roller 10, and a fixing unit 25.

The drum unit 13 integrates the photosensitive drum (photosensitivebody) 15 and a cleaner container 14 which has a cleaning mechanism thatalso serves as a holder of the photosensitive drum 15. The drum unit 13is detachably supported on a printer main body, and is easily exchangedas a unit in correspondence with the service life of the photosensitivedrum 15. The photosensitive drum 15 is prepared by applying an organicphotoconductor layer on the outer surface of an aluminum cylinder, andis rotatably supported by the cleaner container 14. The photosensitivedrum 15 rotates upon receiving the driving force of a driving motor (notshown), and the driving motor rotates the photosensitive drum 15counterclockwise in accordance with image forming operation. Anelectrostatic latent image is formed by selectively exposing the surfaceof the photosensitive drum 15. In a scanner unit 30, a modulated laserbeam is reflected by the polygonal mirror which rotates by a motor 31 ain synchronism with the horizontal sync signal of an image signal, andstrikes the photosensitive drum via a lens 32 and reflection mirror 33.

The developing unit comprises three color developers 20Y, 20M, and 20Cfor developing yellow (Y), magenta (M), and cyan (C) images, and asingle black developer 21B for developing a black (B) image. The colordevelopers 20Y, 20M, and 20C and the black developer 21B respectivelyhave sleeves 20YS, 20MS, 20CS, and 21BS, and coating blades 20YB, 20MB,20CB, and 21BB which are in press contact with the outer surfaces ofthese sleeves 20YS, 20MS, 20CS, and 21BS. Also, the three colordevelopers 20Y, 20M, and 20C respectively have coating rollers 20YR,20MR, and 20CR.

The black developer 21B is detachably attached to the printer main body,and the color developers 20Y, 20M, and 20C are detachably attached to adeveloping rotary 23 which rotates about a rotation shaft 22.

The sleeve 21BS of the black developer 21B is set to have a gap as smallas, e.g., 300 μm with respect to the photosensitive drum 15. In theblack developer 21B, toner is fed by a feed member built in thedeveloper, and is applied by the coating blade 21BB to the outer surfaceof the sleeve 21BS which rotates clockwise, thus charging the toner bytriboelectrification. By applying a developing bias to the sleeve 21BS,the photosensitive drum 15 undergoes development in accordance with anelectrostatic latent image, thus forming a visible image on thephotosensitive drum 15 by black toner.

The three color developers 20Y, 20M, and 20C rotate upon rotation of thedeveloping rotary 23 in image formation, and a predetermined one of thesleeves 20YS, 20MS, and 20CS faces the photosensitive drum 15 to have agap as small as 300 μm. In this manner, a predetermined one of the colordevelopers 20Y, 20M, and 20C stops at the developing position where itfaces the photosensitive drum 15, thus forming a visible image on thephotosensitive drum 15.

Upon forming a color image, the developing rotary 23 rotates once perrotation of the intermediate transfer drum 9 to execute developingprocesses in the order of the yellow developer 20Y, magenta developer20M, cyan developer 20C, and black developer 21B. After four rotationsof the intermediate transfer drum 9, visible images are formed in turnby yellow, magenta, cyan, and black toners, thus forming a full-colorvisible image on the intermediate transfer drum 9.

The intermediate transfer drum 9 contacts the photosensitive drum 15 androtates upon rotation of the photosensitive drum 15. The drum 9 rotatesclockwise upon forming a color image, and four visible images aretransferred in turn onto the drum 9 from the photosensitive drum 15. Thetransfer roller 10 (to be described later) contacts the intermediatetransfer drum 9 upon forming an image, and clamps and conveys a transfermedium 2, thus simultaneously transferring a color visible image on theintermediate transfer roller 9 onto the transfer medium 2. A TOP sensor9 a and RS sensor 9 b for detecting the position of the intermediatetransfer drum 9 in its rotational direction, and a density sensor 9 cfor detecting the density of the toner image transferred onto theintermediate transfer drum are arranged around the intermediate transferdrum.

The transfer roller 10 comprises a transfer charger which is supportedto be movable toward or away from the photosensitive drum 15, and isprepared by winding a middle-resistance foamed elastic member around ametal shaft.

The transfer roller 10 is located at its lower position, as indicated bythe solid line in FIG. 4, so as not to disturb color visible images,while color visible images are transferred in turn onto the intermediatetransfer drum 9. After the four color visible images are formed on theintermediate transfer drum 9, the transfer roller 10 moves to its upperposition indicated by the dotted line in FIG. 1 by a cam member (notshown) in synchronism with the transfer timing of the formed full-colorvisible image onto the transfer medium 2. In this manner, the transferroller 10 is brought into press contact with the intermediate transferdrum 9 at a predetermined pressure via the transfer medium 2, and isapplied with a bias voltage, thus transferring the full-color visibleimage on the intermediate transfer drum 9 onto the transfer medium 2.

The fixing unit 25 fixes the transferred full-color visible image whileconveying the transfer medium 2, and comprises a fixing roller 26 forheating the transfer medium 2, and a pressing roller 27 for pressing thetransfer medium 2 against the fixing roller 26. The fixing roller 26 andpressing roller 27 are formed into a hollow shape, and heaters 28 and 29are respectively built therein. That is, the transfer medium 2 thatholds the full-color visible image is conveyed by the fixing roller 26and pressing roller 27, and the toner image is fixed on its surface byapplied heat and pressure.

After the visible image is fixed, the transfer medium 2 is exhaustedonto an exhaust unit 37 via exhaust rollers 34, 35, and 36, thus endingthe image forming operation.

The cleaning means cleans any residual toner on the photosensitive drum15 and intermediate transfer drum 9, and waste toner after the tonerimage formed on the photosensitive drum 15 is transferred onto theintermediate transfer drum 9 or waste toner after the four color visibleimages formed on the intermediate transfer drum 9 are transferred ontothe transfer medium 2 is stored in the cleaner container 14.

The transfer medium (recording sheet) 2 which is to undergo a printprocess is picked up from the paper tray or cassette 1 by the roller 3,and is conveyed while being clamped between the intermediate transferroller 9 and transfer roller 10 to record a color toner image thereon.The toner image is fixed when the transfer medium 2 passes through thefixing unit 25. A guide 38 forms a convey path to guide the recordingsheet toward the upper exhaust unit in a one-sided print process, butforms a path to guide it to a lower two-side unit in a two-sided printprocess.

The recording sheet guided to the two-side unit is temporarily fed to aportion (a convey path indicated by the two-dashed-chain line) below thetray 1 by convey rollers 40, is then conveyed in the reverse direction,and is fed to a two-side tray 39. On the two-side tray 39, the papersheet is upside down to that placed on the paper tray 1, and its conveydirection is reversed. In this state, a toner image is transferred andfixed again, thus achieving the two-sided print process.

<Saving Process of Print Intermediate Data>

FIG. 5 is a flow chart showing the processing in the step of saving inunits of pages upon generating the spool file 303 in the spooler 302.

In step 501, the spooler 302 receives a print request from theapplication via the graphic engine 202. The application displays adialog that prompts the user to input print setups, as shown in FIG. 8,and the print setups input on this dialog are passed from the printerdriver to the spooler 303. The setup input dialog shown in FIG. 8includes a setup item 801 that determines the number of logical pages tobe laid out per physical page, and the like.

In step 502, the spooler 302 checks if the received print request is ajob start request. If it is determined in step 502 that the receivedprint request is a job start request, the flow advances to step 503, andthe spooler 302 generates a spool file 303 for temporarily savingintermediate data. Subsequently, the spooler 302 informs the spool filemanager 304 of the progress of the print process in step 504, and resetsits page counter to 1 in step 505. The spool file manager 304 reads andstores information, processing setups, and the like of a job, the printprocess of which has started, from the spool file 303.

On the other hand, if it is determined in step 502 that the receivedprint request is not a job start request, the flow advances to step 506.

The spooler checks in step 506 if the received request is a job endrequest. If it is determined that the received request is not a job endrequest, the flow advances to step 507 to check if the received requestis a new page request. If it is determined in step 507 that the receivedrequest is a new page request, the flow advances to step 508 to informthe spool file manager 304 of the progress of the print process. Thespooler 302 then increments the page counter, closes a page descriptionfile that stores intermediate codes, and generates the next pagedescription file.

If it is determined in step 507 that the received print request is not anew page request, the flow advances to step 509, and the spooler 302prepares for export of intermediate codes to a page description file.

In step 510, the spooler 302 converts a DDI function of the printrequest into intermediate codes to store the print request in the spoolfile 303. In step 511, the spooler 302 writes the print request(intermediate codes) that has been converted into a storable format in apage description file of the spool file 303 in step 510. After that, theflow returns to step 501 to receive a print request from the applicationagain. The spooler 302 repeats a series of processes from steps 501 to511 until it receives a job end request (EndDoc). The spooler 302simultaneously acquires information such as processing setups and thelike stored in the DEVMODE structure from the printer driver, and storessuch information in the spool file 303 as a job setup file. On the otherhand, if it is determined in step 506 that the print request from theapplication is a job end request, since the spooler 302 has received allprint requests from the application, the flow advances to step 512 toinform the spool file manager 304 of the progress of the print process,thus ending the processing.

<Generation of Spool File>

FIG. 6 is a flow chart showing details of control between the spool file303 generation process and a print data generation process (to bedescribed later) in the spool file manager 304.

In step 601, the spool file manager 304 receives a print processprogress message from the spooler 302 or despooler 305.

The spool file manager 304 checks in step 602 if the progress message isa print start message which is sent from the spooler 302 in step 504described above. If YES in step 602, the flow advances to step 603, andthe spool file manager 304 reads the print processing setups from thespool file 303 to start job management.

On the other hand, if it is determined in step 602 that the receivedprogress message is not a print start message from the spooler 302, theflow advances to step 604, and the spool file manager 304 checks if theprogress message is a print end message of one logical page which issent from the spooler 302 in step 508 mentioned above. If the progressmessage is a print end message of one logical page, the flow advances tostep 605 to store logical page information for that logical page.

It is then checked in step 606 if a print process of n logical pagesthat have been spooled at that time onto one physical page can start. IfYES in step 606, the flow advances to step 607 to determine a physicalpage number on the basis of the number of logical pages assigned to onephysical page to be printed.

As for a computation of a physical page, for example, when theprocessing setups lay out four logical pages on one physical page, thefirst physical page becomes ready for print when the fourth logical pagehas been spooled, thus determining the first physical page.Subsequently, the second physical page becomes ready for print when theeighth logical page has been spooled.

Also, even when the total number of logical pages is not a multiple ofthe number of logical pages to be laid out per physical page, logicalpages to be laid out per physical page can be determined by a spool endmessage in step 512.

In step 608, the spool file manager 304 saves information such as thelogical page numbers which form the physical page that is ready forprint, the physical page number of that physical page, and the like in ajob output setup file (a file including physical page information) inthe format shown in FIG. 10, and informs the despooler 305 that physicalpage information for one physical page has been added. After that, theflow returns to step 601 to wait for the next message. In thisembodiment, when print data for one page, i.e., logical pages that formone physical page have been spooled, a print process can start even whenprint jobs to be spooled still remain.

On the other hand, if it is determined in step 604 that the progressmessage is not a print end message of one logical page, the flowadvances to step 609, and the spool file manager 304 checks if theprogress message is a job end message sent from the spooler 302 in step512 mentioned above. If YES in step 609, the flow advances to step 606described above.

On the other hand, if the progress message is not a job end message, theflow advances to step 610, and the spool file manager 304 checks if thereceived message is a print end message of one physical page from thedespooler 305. If the received message is a print end message of onephysical page, the flow advances to step 611 to check if print processesfor the processing setups are complete. If YES in step 611, the flowadvances to step 612 to send a print end message to the despooler 305.

On the other hand, if it is determined that print processes for theprocessing setups are not complete yet, the flow advances to step 606described above. The despooler 305 in this embodiment assumes onephysical page as a unit for the print process. In step 608, informationrequired for executing the print process of one physical page is savedin a file, so that such information can be used again. However, if suchinformation need not be used again, a high-speed medium such as a sharedmemory or the like may be used to overwrite information in turn in unitsof physical pages, thus achieving both high processing speed andresource savings. On the other hand, when the progress of spooling isfaster than that of despooling, or when despooling starts aftercompletion of spooling of all pages, a message indicating that aplurality of physical pages or all physical pages are ready for print issent in accordance with the progress on the despooling side in place ofsending a page print ready message for each physical page in step 608,thus reducing the number of messages.

If it is determined in step 610 that the message is not a print endmessage of one physical page from the despooler, the flow advances tostep 613, and the spool file manager 304 checks if the message is aprint end message from the despooler 305. If it is determined that themessage is a print end message from the despooler 305, the flow advancesto step 614, and the spool file manager 304 deletes the correspondingpage description files in the spool file 303, thus ending theprocessing. On the other hand, if the message is not a print end messagefrom the despooler 305, the flow advances to step 615 to execute anothernormal process and to then wait for the next message.

<Output of Spool File>

FIG. 7 is a flow chart showing details of the print data generationprocess in the despooler 305.

The despooler 305 reads out required information (page description fileand job setup file) from the spool file 303 in response to the printrequest from the spool file manager 304, and generates print data. Themethod of transferring the generated print data to the printer hasalready been explained with reference to FIG. 3.

Upon generating print data, the despooler 305 receives a message fromthe spool file manager 304 in step 701. The despooler 305 checks in step702 if the input message is a job end message. If YES in step 702, theflow advances to step 703 to set an end flag, and the flow then jumps tostep 705.

On the other hand, if it is determined in step 702 that the receivedmessage is not a job end message, the flow advances to step 704 to checkif the print start request of one physical page in step 608 mentionedabove is received. If it is determined in step 704 that the receivedmessage is not a start request, the flow advances to step 710 to executean error process, and the flow returns to step 701 to wait for the nextmessage. On the other hand, if it is determined in step 704 that thereceived message is a print start request of one physical page, the flowadvances to step 705, and the despooler 305 saves the IDs of physicalpages, the print ready message of which was received in step 704.

The despooler 305 checks in step 706 if print processes of all pages ofthe physical page IDs saved in step 705 are complete. If YES in step706, the flow advances to step 707 to check if the end flag was set instep 703 mentioned above. If YES in step 707, the despooler 305determines that the job print process is complete, and sends itsprocessing end message to the spool file manager 304, thus ending theprocessing.

If it is determined in step 707 that the end flag is not set, the flowreturns to step 701 to wait for the next message. If it is determined instep 706 that physical pages which are ready for print still remain, theflow advances to step 708. In step 708, the despooler 305 reads outunprocessed physical page IDs in turn from the saved physical page IDs,reads information required for generating print data of a physical pagecorresponding to each readout physical page ID, and executes a printprocess. The print process is done by converting by the despooler 305 aprint request command stored in the spool file 303 into a format (GDIfunction) that the graphic engine 202 can recognize, and transferring itto the printer driver.

As for the processing setups that lay out a plurality of logical pageson one physical page (to be referred to as an N-page print processhereinafter) as in this embodiment, conversion in this step is done inconsideration of the layout upon reduction in scale. Upon completion ofthe required print process, the despooler 305 sends a print datageneration end message of one physical page to the spool file manager304 in step 709. The flow returns to step 706 to repeat theaforementioned processes until print processes for all the physical pageIDs of print ready pages, which were saved in step 705, are complete.

The flow of the print process using the dispatcher 301, spooler 302,spool file manager 304, and despooler 305 has been explained. With theabove process, since the application 201 is released from the printprocess at the timing at which the spooler 302 generates intermediatecodes and stores them in the spool file 303, the application 201 can bereleased earlier than a case wherein a print command is directly outputto the printer driver 203. Since intermediate files (page descriptionfile, job setup file) that consider the print setups of the printerdriver are temporarily saved in the spool file 303, the user canrecognize a print preview of an image to be actually printed, and cancombine or sort print jobs generated by a plurality of applications.Also, the user can change print setups to execute a print processwithout launching the application again.

In the print process using the spooler 302, a job output setup file isgenerated when the despooler 305 issues a print request to the graphicengine, and is also generated when the preview process, job combineprocess, or the like is done. The job output setup file is equivalent toa job setup file in case of an independent job, and is generated basedon a plurality of pieces of job setup information in case of a combinedjob. The job output setup file will be explained below.

<Configuration of Job Output Setup File>

FIG. 10 shows an example of the job output setup file that savesinformation which is generated by the spool file manager 304 in step608, and forms a print ready physical page. A field 1001 holds an IDthat identifies a job, and may be held in the form of the name of a fileor shared memory which saves this information. A field 1002 stores jobsetup information. The job setup information includes information uniqueto each job, such as a structure required for starting a job printprocess with respect to the graphic engine 202, designation of an N-pageprint process, designation of additional rendering of a page frame orthe like, the number of copies, finishing designation such as staple,and the like. The job setup information in the field 1002 saves arequired number of information in correspondence with the functions fora job. A field 1003 stores the number of physical pages of a job, andindicates the number of pieces of physical page information incorrespondence with the value stored therein. Since this embodimentinforms the number of physical pages which are ready for print, thisfield may be omitted. Fields 1004 to 1007 store physical pageinformation in correspondence with the value stored in the field 1003.The physical page information will be explained later using FIG. 12.

FIG. 11 shows an example of the job setup information in the field 1002shown in FIG. 10. A field 1101 stores the total number of physicalpages. A field 1102 stores the total number of logical pages. The fields1101 and 1102 are used when the number of pages is printed as additionalinformation in addition to print data. While a print process continues,these fields store tentative values, or the spool file manager 304postpones generation of information of print ready physical pages untilthe print process ends. A field 1103 stores information indicating thenumber of copies to be printed of the print job of interest. A field1104 stores information that designates if a print process is done inunits of copy sets, when information set in the field 1103 indicates aprint process of a plurality of sets of copies. A field 1105 storesfinishing information such as staple, punch, Z-fold, and the like, whichinformation is designated when a finisher is available on the printermain body or an external device. A field 1106 stores additional printinformation, which saves information to be added to a job such asdecoration including a page frame or the like, additional informationincluding a date or the like, the user name, the number of pages,watermark print, and the like. The number of fields included in this jobsetup information increases with increasing number of functions. Forexample, when a two-sided print function is available, a field forsaving designation of two-sided print is added.

FIG. 12 shows an example of the physical page information in the field1004 shown in FIG. 10. A first field 1201 stores a physical page number,which is a value used when the print order is managed or a physical pagenumber is additionally printed. A field 1202 stores physical page setupinformation, which saves layout or color/monochrome setups when a layoutor color/monochrome mode can be designated in units of physical pages. Afield 1203 stores the number of logical pages assigned to the physicalpage of interest, and saves a value “4” or an ID indicating 4-page printwhen four pages are assigned per physical page.

A field 1204 and the subsequent fields save information of logical pagesin correspondence with the number designated in the field 1203.Depending on the number of pages printed from the application 201, theactual number of page data sometimes becomes smaller than the number ofpages designated by the field 1203. In such case, logical pageinformation saves special data indicating a blank page.

FIG. 13 shows an example of the physical page setup information in thefield 1202. A field 1301 stores the layout order of logical pages on aphysical page, and saves designation of the order that logical pages arelaid out on a physical page (from upper left to right, from upper leftto lower, and the like) in an N-page print process. In some systems, thefield 1204 and the subsequent fields that store logical page informationmay be arranged not in a page number order but in the layout order inplace of the setups in the field 1301.

A field 1302 stores information indicating the obverse or reversesurface of the two-sided print, which is used when, e.g., bindingmargins are to be formed on identical sides on the obverse and reversesurfaces. A field 1303 stores designation of a color or monochrome page,which is a value used when a printer has both monochrome and colormodes, and color and monochrome pages of a document that includes bothcolor and monochrome pages are to be printed in the color and monochromemodes, respectively. With this information, the color printer can changeprocesses in units of pages as an auto color mode. That is, transfercontrol is done for a color page by completing rotations of anintermediate transfer member (intermediate transfer drum or belt) ortransfer member (transfer drum or belt) in correspondence with thenumber of device colors (four rotations in case of YMCK), and for amonochrome page by completing one rotation for black.

A field 1304 stores additional print information, which is used whenadditional information such as the number of pages, date, or the like isprinted on a physical page. In the physical setup information, thenumber of fields increases in correspondence with the number offunctions of the system.

FIG. 14 shows an example of logical page information stored in the field1204. A field 1401 stores the ID of a physical page. Using this ID, anintermediate code of a page description file corresponding to thelogical page of interest is looked up from the spool file 303. Thisfield may store a file or memory pointer, or an intermediate code itselfthat forms a logical page, as long as the intermediate code of a logicalpage can be accessed using this ID.

A field 1402 stores a logical page number, which is used when thelogical page number is printed as additional information or as auxiliaryinformation of the logical page ID. Format information in a field 1403saves various setup items that can be designated in units of logicalpages. For example, the format information saves additional printinformation such as a page frame and various kinds of setup informationdesignated in units of logical pages such as an enlargement/reductionratio and the like. Also, the format information can save attributeinformation of a logical page such as color/monochrome information inunits of logical pages if necessary. Conversely, if a system need notswitch setups in units of local pages or does not require any attributeinformation in units of logical pages, the field 1403 can be omitted.

The job output setup file has the aforementioned configuration. Notethat the job setup file has nearly the same configuration. The job setupfile saves a print method (one-sided, two-sided, bookbinding print), aprint layout (N-up, poster print), additional information (addition ofwatermark, date, user name), the number of copies, and paper sizeinformation for each job. Also, the job setup file saves the layoutorder of logical pages, information indicating the obverse or reversesurface of two-sided print, color mode information, and the like inunits of physical pages.

Furthermore, FIG. 3 shows the example in which the setup change editor307 having a function of changing the setups of a job is added to theexpanded system described so far. In this embodiment, the setup contentsof an independent job are contained in a job setup file, and those of acombined job are contained in a job output setup file shown in FIG. 10.In addition, these files are independent from the page description filethat saves intermediate codes. Hence, the setups of each job can bechanged by editing the job output setup file. The setup change editor307 edits or partially rewrites the job output setup file solely or incollaboration with the spool file manager 304, thus implementing the jobsetup change function.

<Processing Sequence of Setup Change>

FIG. 15 is a flow chart showing details of the job setup change processin the setup change editor 307.

In step 1501, the setup change editor reads a job setup file or joboutput setup file. The job output setup file is the same file as thatread by the previewer 306 and despooler 305.

The flow advances to step 1502 to display the read result to the user.In step S1503, the setup change editor interactively changes the setupcontents by the aforementioned menu designation and the like with theuser on the user interface shown in FIG. 18. This step may be attainedin a batch manner that changes contents in accordance with setup changecontents written in a file or the like in place of the interactivemanner.

The flow advances to step 1504, and the setup change editor compares theinitially read contents and the currently designated setup contents tocheck if the contents have been changed. If the setup contents have beenchanged, the flow advances to step 1505 to generate a new job outputsetup file and inform the spool manager file of the changes, thus endingthe processing. If it is determined in step 1504 that the setup changesare not changed, the setup change editor informs the spool file managerof that fact, thus ending the processing.

A new job output setup file is generated in this way. When an “OK”button 1801 is selected on the user interface window in FIG. 18, the newjob output setup file is enabled, and the old job output setup file isdeleted. When the job setup file of an independent job has been changedin place of the job output setup file, the old file is saved withoutbeing deleted. When a “restore defaults” button 1802 is selected on thewindow shown in FIG. 18, the new job output setup file is deleted, andthe old job output setup file is enabled and reflected in display.

This embodiment has explained the setup change editor 307 as anindependent module. Alternatively, the setup change editor 307 may be apart of the user interface of the spool file manager 304. Also, thesetup change editor 307 may be implemented as follows. That is, theeditor 307 does not actually write change contents in the job outputsetup file and informs the spool file manager 304 of only the setupchange contents, and the spool file manager 304 actually changes the joboutput setup file.

FIG. 3 shows the expanded system that combines a plurality of print jobsand prints them as a single print job. An expansion for despooling andpreviewing a combined job will be explained below.

Normally, spool files 303 with the intermediate format are generated inunits of jobs. In case of an independent job, since a print process,setup change process, or the like is executed by sequentially readingout intermediate codes of respective logical pages in the job file to beprocessed, the logical page ID in the field 1401 can be implemented by arelative or absolute offset which indicates the location of each logicalpage in a file. In case of a combined job, a spool file and pageinformation which belongs to that job must be specified from the job IDin the field 1401. In this embodiment, a spool file is specified byappending an ID that identifies a spool file to the logical page ID. Inthis case, only the field 1401 can be modified. If the spool file can beidentified, read of page information can be processed by the same logicas in the process of an independent job. In another implementation, whenspool files are saved as independent files in units of logical pages,the file name of each logical page may be used as the logical page ID inthe field 1401.

<Preview Display in Store Process>

The sequence for displaying a print preview image on the basis of aprint job saved as intermediate data and a job output setup file will beexplained below. When the user designates a store process of a print jobfrom a menu 901, as shown in FIG. 9, in the print process from theapplication program, a print job defined by intermediate codes and a joboutput setup file can be generated in the sequence shown in FIG. 5. As aresult, a list of currently stored print jobs is displayed, as shown inFIG. 16. The user designates a desired print job from the print joblist, and can edit the print job, combine jobs, add the print job to thealready combined print job, change the order of print jobs in thecombined job, and so forth.

In this case, when the user designates a given print job from the listand designates an operation such as edit, combine, or the like from thebutton or menu, a print preview window of the entire designated job isdisplayed, as shown in FIG. 18. Note that this print preview window canalso display a preview image of the page relationship in the entireindependent or combined print job unlike a normal preview windowprepared by an application, which displays a preview image for eachpage.

FIG. 19 shows the sequence when data created by an application programor the like undergoes a print process while designating a store process.When the user selects “store” from the menu 901 as the outputdestination on the window shown in FIG. 9, and starts the print process,the sequence shown in FIG. 9 is executed.

In step S1901, the spooler is launched to generate and storeintermediate data and a job output setup file. When “store” isdesignated, the spooler does not issue any print start instruction tothe spool manager, and the intermediate data are held without beingprinted. The print job in this state is called a stored print job inthis embodiment.

The print job that has been converted into and held as intermediate datain step S1901 is added to the already stored print job list in stepS1902. In this embodiment, the stored print job is held only duringexecution of a program (the previewer 306 and setup change editor 307 inFIG. 3) for managing stored print jobs, and is deleted upon quittingsuch program. However, the stored print job may be held until it isactually deleted.

When a new print job is added to the stored print job list, a list ofthese jobs is displayed in step S1903, as shown in FIG. 16. Note that aprint job held as intermediate data is called a held job, and a jobselected for the combine or edit process is called a target job.

<Display of Job List>

FIG. 20 is a flow chart showing details of step S1903 in FIG. 19. Notethat the sequence in FIG. 20 is executed every time the state to bedisplayed has been changed, e.g., when a job is selected from the joblist, thus updating the displayed job list.

It is checked in step S2001 if a plurality of jobs are selected. If NOin step S2001, it is checked in step S2002 if a job is selected. If YESin step S2002, that job is determined as a job of interest, and an editbutton is enabled. The edit button is a button 1608 in FIG. 16. FIG. 16shows a state immediately after a single job is selected, and the editbutton is enabled.

On the other hand, if no job is selected, a job which was selected inthe previous process is determined as a job of interest in step S2004.If no such job is available, i.e., if the job list is displayed for thefirst time, the first job in the job list is determined as a job ofinterest.

After the job of interest is determined, a job which cannot be combinedwith the job of interest is picked up from the held jobs, and the effectand reason why the job cannot be combined with the job of interest arewritten in a predetermined memory area or the like (step S2005). Notethat at least one of setup item values, which cannot be changed after ajob is generated (e.g., the designated resolution, the number of bitsper pixel, graphic mode, or the like), of the job that cannot becombined with the job of interest is different from that of the job ofinterest.

Finally, the job list is displayed in step S2006. In this case, as forthe job for which the effect and reason why it cannot be combined withthe job of interest are set in step S2005, a symbol indicating that thisjob cannot be combined with the job of interest and a reason thereforare displayed in the column where that job is displayed. FIG. 26 showsthis state. Since a job 2602 can be combined with a selected job 2601,but a job 2603 and subsequent jobs cannot be combined, symbolsindicating that message are displayed on the left side of documentnames, and reasons why these jobs cannot be combined are displayed in acomment field.

On the other hand, if a plurality of jobs are selected, it is checked instep S2007 if the selected jobs can be combined. If YES in step S2007, acombine button (a button 1606 in FIG. 16) is enabled (selectable) instep S2008, and the flow advances to step S2006 to display the job list.

If all the selected jobs cannot be combined, a message indicating thatall the held jobs cannot be combined is set in step S2009. In stepS2006, symbols and comments are displayed for the jobs for which themessage indicating that they cannot be combined is set in step S2009.

In this way, the job list is displayed. As described above, since thesequence in FIG. 20 is executed every time a job is selected from thejob list, jobs that can be combined with the selected job, andpossibility of the edit or combine operation for the selected job can bepresented to the user.

<Edit/combine Operation>

When the edit button (for a case wherein only one job is selected) orthe combine button (for a case wherein a plurality of jobs are selected)is pressed while a job or jobs are selected from the display job list,the sequence shown in FIG. 21 is executed. When jobs which cannot becombined are selected, no combine operation is available.

It is checked in step S2101 if the combine operation is made. If YES instep S2101, selected job output setup files are tentatively combined instep S2102. Since this operation is not settled, a tentative job outputfile is generated and used. Upon combining jobs, some setup values arechanged to common values in place of the individual setups of the jobs.

As the method of setting common setups, the setup values may be changedto predetermined ones, or the setups of jobs other than the first jobare set or cleared in correspondence with those of the first job. Forexample, the print methods of jobs to be combined are commonly set to beone-sided print unless they are all designated with two-sided print.Also, the setup values of the binding margin, staple designation,ascending/descending print order, face-up/down print, use of aninserter, and the like are set in correspondence with those of the firstjob. In addition, the setup values of the number of copies, bookbindingdesignation, and the like are cleared.

Preview display is executed using the job output setup file combined instep S2102 or that of a job selected as a job to be edited in stepS2103, and a target job list is displayed in step S2104. The previewwindow displays thumbnail images of all pages contained in jobs to beedited or combined in accordance with their layouts. On the other hand,the target job list displays the names, number of pages, and pagelayouts of jobs to be edited or combined. In this list display, in caseof the combine operation, the job order can be sorted desirably, and adesired job can be deleted from the target jobs. When the target job isoperated in this manner, the sequence shown in FIG. 21 is executedagain, and the preview window and target job list are re-displayed.

Also, the print setups of the target job can be changed. Items that canbe changed are those which can be changed by editing the job outputsetup file. Items that require operations of intermediate data areinhibited from being operated in this embodiment. However, all items maybe re-set regardless of the processing time or resources required. Itemsthat can be re-set in the system of this embodiment are the print method(one-sided/two-sided/bookbinding), the number of copies, thepresence/absence of staple, and the like.

<Print Preview Display of Target Job>

FIG. 22 is a flow chart showing the sequence for displaying the jobpreview window shown in FIG. 18 when the user instructs desiredoperation such as job edit, combine, or the like on the list displaywindow of print jobs shown in FIG. 16, and shows details of step S2103in FIG. 21.

Referring to FIG. 22, the layout setups of target jobs are acquired instep S2201. The layout setup items include the print method, pagelayout, page frame, finishing, paper feed switching, and the like, andthese pieces of information are acquired from the job output setup fileshown in FIGS. 10 to 13.

The layout setup items will be briefly explained below. Examples ofitems to be set are as follows.

(1) Print method: One of one-sided/two-sided/bookbinding is designated.The one- and two-sided print processes are well known. The bookbindingprint process is a method of printing data to obtain the format of abook by only folding printed sheets once and binding them. When thebookbinding print mode is designated, one of a method of folding a setof copies once, and a method of designating a predetermined number ofsheets, folding each predetermined number of sheets once, and thenstacking and binding them can be designated. Such twofold unit is calleda bookbinding unit.

In the bookbinding print process, since a stack of a designated numberof sheets, e.g., two output sheets are bound by being folded once, datacannot be printed in the order of logical pages created by theapplication. The output order of logical pages, i.e., the layout orderof logical pages on physical pages, is determined in advance so thatlogical pages are allocated in turn by turning pages of the bound sheetsfrom the right to left (this direction is designated separately). Also,the order of logical pages differs depending on whether sheets areexhausted facing up or down.

Since the bookbinding print process corresponds to a two-sided 2-upprint process in consideration of only the format regardless of theorder of pages, four logical pages are printed on the obverse andreverse surfaces of a single sheet. Hence, the required number S ofsheets is given by S=the number of logical pages/4 (with raisingdecimals to the next whole number). For example, when the exhaust methodis face-up, and the bookbinding unit is S sheets, the (4×(P−1)+2×Q−1)-thlogical page and (4×(P−1)+4×S−2×(Q−1))-th logical page are laid out onthe obverse surface (the surface printed first) of the Q-th sheet of theP-th bookbinding unit, and the (4×(P−1)+2×Q)-th logical page and(4×(P−1)+4×S−2×Q−1)-th logical pages are laid out on the reverse surfacethereof. In case of the face-down exhaust method, the reverse surfacecan replace the obverse surface.

(2) Book Opening Direction: This item indicates a direction to turnpages, and one of top open, right open, and left open can be designated.

(3) Bookbinding Unit: As described above, this item indicates a twofoldunit in the bookbinding print process.

(4) Page Layout: One of a layout, so-called N-up print, that lays out Nlogical pages on one surface of a sheet (one physical page), and alayout, so-called poster print, that prints one logical page whiledividing it onto a plurality of sheets can be designated.

(5) Finishing: This item can designate a process after the printprocess. For example, an external apparatus called an inserter caninsert a sheet supplied independently of printed sheets as a cover page.

(6) Paper Source Switching: This item designates the way sheets are fed.For example, when middle insert is designated, sheets fed from one offeed ports undergo a print process, and sheets fed from the other feedport are inserted and exhausted between neighboring printed sheets. Thatis, sheets are alternately fed from the two feed ports.

The items that can be designated as layout setups have been explained.

In step S2202, the logical page information is acquired. The logicalpage is a page in data created by the application program or the like.When the Nup print process is designated, a plurality of logical pagesare printed on one physical page, i.e., on one surface of one sheet.This logical page information is as shown in FIG. 14.

In step S2203, a page template is rendered on the basis of theinformation acquired in steps S2201 and S2202. The page template is aframework of each physical page in accordance with the designatedlayout, and is rendered in correspondence with the designated paper sizeand layout setups such as designation ofone-sided/two-sided/bookbinding, portrait/landscape, and the like.However, when the poster print process is designated, since the combinedstate of images is displayed as a preview image, the above process isnot applied.

In step S2204, a page number given to each page to be displayed as apreview image is rendered. In this case, pages are given in the order oflogical or physical pages in accordance with the layout. In this way,the user can confirm accurate page numbers corresponding to the layouton the print preview window.

In step S2205, logical pages are rendered in correspondence with eachpage template. In this case, the job output setup file shown in FIGS. 10to 14 is looked up, and logical pages are rendered on a single physicalpage in accordance with the setups registered in the job output setupfile. Intermediate data of the logical pages to be rendered are acquiredwith reference to the logical page information shown in FIG. 14.

Finally, in step S2206, the total number of pages or the required numberof sheets is rendered. The total number of pages amounts to the numberof logical pages, and the required number of sheets is the number ofpaper sheets to be output.

(Page Template Rendering)

FIG. 23 is a flow chart showing details of step S2203 in FIG. 22. Thelayout setups are acquired in step S2301 (enclosed in parentheses sincethe layout has already been acquired in step S2201 in FIG. 22), and theprint method is checked in steps S2302 and S2303. If the bookbindingprint process is selected, a page template for bookbinding print isacquired in step S2304; if the two-sided print process is selected, apage template for two-sided print is acquired in step S2309.

If the one-sided print process is selected, it is checked in step S2306if the middle insert print process is selected. The middle insert printprocess is a print method for inserting and exhausting independently fedpaper sheets between neighboring output printed sheets, and is used whentransparent documents for an overhead projector are printed. If themiddle insert print process is selected, a page template for middleinsert print is acquired in step S2207; otherwise, a page template forone-sided print is acquired in step S2308.

Lastly, in step S2305 the page template is rendered in accordance withthe acquired page template data.

(Page Number Rendering)

FIG. 24 is a flow chart showing details of step S2204 in FIG. 22. Thelayout setups are acquired in step S2401 (enclosed in parentheses sincethe layout has already been acquired in step S2201 in FIG. 22), and theprint method is checked in steps S2402 and S2403. If the bookbindingprint process is selected, page numbers for bookbinding print arerendered in step S2404; if the two-sided print process is selected, pagenumbers for two-sided print are printed in step S2406. On the otherhand, if the one-sided print process is selected, page numbers forone-sided print are rendered in step S2405.

(Logical Page Rendering)

FIG. 25 is a flow chart showing details of step S2205 in FIG. 22. Thelayout setups are acquired in step S2501 (enclosed in parentheses sincethe layout has already been acquired in step S2201 in FIG. 22), and theprint method is checked in steps S2502 and S2503. If the bookbindingprint process is selected, logical pages for bookbinding print arerendered in step S2504; if the two-sided print process is selected,logical pages for two-sided print are printed in step S2506. On theother hand, if the one-sided print process is selected, logical pagesfor one-sided print are rendered in step S2505. Since logical pages arerendered in accordance with the job output setup file and logical pageinformation, a process that does not classify according to the printmethod may be done.

<Details of Page Template Rendering>

FIG. 27 is a flow chart showing details of the page template renderingprocess in step S2305 in FIG. 23. In step S2305, the process forrendering the acquired page template is executed.

In step S2701, the vertical dimensions of individual physical pages inthe job are compared to search for a page with the largest verticalsize. In this case, the job searched is a print job to be edited whenthe user instructs to edit the stored job or is all print jobs to becombined when the user instructs to combine job. This search is made bylooking up physical page information from the output job setup file inFIG. 10 and comparing their vertical sizes. Note that data to becompared are physical pages which reflect the actual output sheet sizesand are rendered as page templates.

If a page with the maximum vertical size is found from all jobs to becompared, the templates of the individual pages to be displayed aspreview images, which are acquired in steps S2307 to S2309 in FIG. 23are rendered in a reduced scale, so that the template of the page withthe maximum vertical size found in step S2702 falls within the displayframe of the preview display. Note that the templates of the individualpages are reduced at the same ratio to maintain the relative sizerelationship and the vertical and horizontal directions. For example,when the job of interest includes a page with an A4 portrait size and apage with an A3 portrait size, the page template of the page with the A3portrait size is reduced to fall within the preview display frame in thevertical direction. On the other hand, the page with the A4 portraitsize is reduced at the same reduction ratio as the A3 size so that thesize relationship is maintained, i.e., the length and width of the pagewith the A4 portrait size respectively become ½ those of the page withthe A3 portrait size.

In this manner, since all pages fall within the preview window, thepreview display window need not be scrolled, thus implementing displaywhich is very easy to see. In addition, the relative size relationshipcan be expressed on the preview display. Since size reduction is made tomake the maximum page fall within the frame, the respective pages can beprevented from being excessively reduced, thus allowing display which iseasy to see.

Furthermore, every time a job list is edited or a page is deleted fromthe preview window, the edit/combine process shown in FIG. 21 isre-executed, and the preview display process in FIG. 22 is re-executedaccordingly. Hence, since the process in FIG. 27 is re-executed everytime the aforementioned processes are re-executed, preview display ismade to always display a page with the maximum vertical size in thelargest scale.

FIG. 28 shows an example of preview display. Since “edit” of a job 2801is designated, four pages included in the print job 2801 are displayedon a preview display window 2802. The pages displayed are four physicalpages respectively having a letter size, A4 landscape size, a 11×17size, and a B4 landscape size. Upon making this display, the templatesizes are reduced or enlarged in the sequence shown in FIG. 27. Anexplanation will be given along FIG. 27. That is, as a result ofcomparison of the vertical dimensions of all pages, the page having the11×17 size has the maximum vertical size. Hence, the template of the11×17 size is zoomed to just fall within the display window 2802, andthe remaining templates of the letter size, A4 size, and B4 size arezoomed to have the same ratio of sizes relative to the page of the 11×17size as that of actual paper sheets. After that, these templates arerendered and displayed.

When the user points to a page displayed as a preview image using apointer or the like, the size of the pointed page is displayed. In FIG.28, the fourth page at the right end is pointed, and “B4” is displayedas its size.

When the user selects the third page as that having the maximum sizefrom the state in FIG. 28 and presses a “DELETE” button 2804 in FIG. 28to instruct “delete”, the third page is deleted, and the preview windowis updated, thus deleting the third page from the preview window. FIG.29 shows this state. When the first, second, and fourth pages aresearched for a page with the maximum vertical dimension after the thirdpage is deleted, the first page with the letter size has the maximumvertical dimension. Hence, the templates are zoomed so that the pagewith the letter size falls within the preview display window, and otherpages are zoomed at the same ratio as the page with the letter size inthe sequence shown in FIG. 27. As a result, the page with the lettersize is displayed to just fall within the display window, as shown inFIG. 29.

As described above, upon displaying a preview image of a documentincluding pages (paper sheets) of various sizes and directions, sincepage templates are zoomed so that a page with the maximum vertical sizejust falls within the preview window, the display space can beefficiently used. Also, since pages are juxtaposed and displayed, allpages can be previewed by only horizontally scrolling the window. Also,since other pages are zoomed at the same ratio as the maximum page,relative page sizes can be visually recognized on the preview displaywindow. Also, by displaying the size of the designated page, the usercan recognize not only relative sizes but also the actual size.

Note that the present invention may be applied to either a systemconstituted by a plurality of devices (e.g., a host computer, aninterface device, a reader, a printer, and the like), or an apparatusconsisting of a single equipment (e.g., a copying machine, a facsimileapparatus, or the like).

The objects of the present invention are also achieved by supplying astorage medium, which records a program code that can implement thefunctions of the above-mentioned embodiments, i.e., the sequences shownin FIGS. 19 to 25 and FIG. 27 to the system or apparatus, and readingout and executing the program code stored in the storage medium by acomputer (or a CPU or MPU) of the system or apparatus.

In this case, the program code itself read out from the storage mediumimplements the functions of the above-mentioned embodiments, and thestorage medium which stores the program code constitutes the presentinvention.

As the storage medium for supplying the program code, for example, afloppy disk, hard disk, optical disk, magneto-optical disk, CD-ROM,CD-R, magnetic tape, nonvolatile memory card, ROM, and the like may beused.

The functions of the above-mentioned embodiments may be implemented notonly by executing the readout program code by the computer but also bysome or all of actual processing operations executed by an OS (operatingsystem) running on the computer on the basis of an instruction of theprogram code.

Furthermore, the functions of the above-mentioned embodiments may beimplemented by some or all of actual processing operations executed by aCPU or the like arranged in a function extension board or a functionextension unit, which is inserted in or connected to the computer, afterthe program code read out from the storage medium is written in a memoryof the extension board or unit.

As described above, print preview display that reflects the layout to beprinted as faithfully as possible and is most easy to see withoutrequiring the user to designate the layout for preview display can bemade.

When a preview image of a document including pages with various sizesand directions is to be displayed, these pages are displayed as previewimages so that a page with the maximum vertical size just falls withinthe preview display window, thus efficiently using the display space.Hence, all pages can be previewed by horizontally scrolling the displaywindow. Also, since all the pages are zoomed at the same ratio as thatof the maximum page, relative page sizes can be visually recognized onthe preview display window. By displaying the size of the designatedpage, the user can recognize not only relative sizes but also the actualsize.

As many apparently widely different embodiments of the present inventioncan be made without departing from the spirit and scope thereof, it isto be understood that the invention is not limited to the specificembodiments thereof except as defined in the appended claims.

1. A print preview display method comprising the steps of: determining ascaling factor to display a preview image based on the page sizes ofmultiple kinds included in a print job with multiple pages; resizingeach page included in the print job based on the scaling factordetermined in the step of determining; and displaying preview images ofthe pages resized in the step of resizing, wherein the scaling factor ischanged in accordance with a combination of the multiple pages includedin the print job, and wherein the multiple pages are resized in the stepof resizing while maintaining a relationship of page sizes among themultiple pages.
 2. A method according to claim 1, wherein said step ofdetermining determines the scaling factor based upon a page size of amaximum page which has the maximum dimension in a predetermineddirection among the recognized page sizes of multiple kinds.
 3. A methodaccording to claim 2, wherein, when a page is deleted from the printjob, a maximum page which has the maximum dimension in the predetermineddirection in the print job are recognized again, and the multiple pagesincluded in the print job are displayed as preview images in a scalingfactor at which the maximum page falls within the frame.
 4. A methodaccording to claim 1, wherein the scaling factor at which the maximumpage falls within the frame is a scaling factor at which a verticaldimension of the maximum page becomes smaller than a vertical dimensionof the frame.
 5. The method according to claim 1, wherein when a pagedisplayed within the frame is designated, a size of the designated pageis displayed.
 6. The method according to claim 1, further comprising astep of performing the print job.
 7. The method according to claim 1,further comprising a storage step of storing print data in units ofprint jobs.
 8. A print preview display apparatus comprising: determiningmeans for determining a scaling factor to display a preview image basedon the page sizes of multiple kinds included in a print job withmultiple pages; resizing means for resizing each page included in theprint job based on the scaling factor determined in the step ofdetermining; and displaying means for displaying preview images of thepages resized in the step of resizing, wherein the scaling factor ischanged in accordance with a combination of the multiple pages includedin the print job, and wherein the multiple pages are resized by theresizing means while maintaining a relationship of page sizes among themultiple pages.
 9. A method according to claim 8, wherein saiddetermining means determines the scaling factor based upon a page sizeof a maximum page which has the maximum dimension in a predetermineddirection among the recognized page sizes of multiple kinds.
 10. Amethod according to claim 9, wherein, when a page is deleted from theprint job, a maximum page which has the maximum dimension in thepredetermined direction in the print job are recognized again, and themultiple pages included in the print job are displayed as preview imagesin a scaling factor at which the maximum page falls within the frame.11. A method according to claim 8, wherein the scaling factor at whichthe maximum page falls within the frame is a scaling factor at which avertical dimension of the maximum page becomes smaller than a verticaldimension of the frame.
 12. The method according to claim 8, whereinwhen a page displayed within the frame is designated, a size of thedesignated page is displayed.
 13. The method according to claim 8,further comprising a print means for performing the print job.
 14. Themethod according to claim 8, further comprising storage means forstoring print data in units of print jobs.
 15. A program stored on acomputer readable medium for a print preview display method comprising:a program code for determining a scaling factor to display a previewimage based on the page sizes of multiple kinds included in a print jobwith multiple pages; a program code for resizing each page included inthe print job based on the scaling factor determined in the step ofdetermining; and a program code for displaying preview images of thepages resized in the step of resizing, wherein the scaling factor ischanged in accordance with a combination of the multiple pages includedin the print job, and wherein the multiple pages are resized in the stepof resizing while maintaining a relationship of page sizes among themultiple pages.
 16. The program according to claim 15, wherein said codefor determining determines the scaling factor based upon a page size ofa maximum page which has the maximum dimension in a predetermineddirection among the recognized page sizes of multiple kinds.
 17. Theprogram according to claim 16, wherein, when a page is deleted from theprint job, a maximum page which has the maximum dimension in thepredetermined direction in the print job are recognized again, and themultiple pages included in the print job are displayed as preview imagesin a scaling factor at which the maximum page falls within the frame.18. The program according to claim 15, wherein the scaling factor atwhich the maximum page falls within the frame is a scaling factor atwhich a vertical dimension of the maximum page becomes smaller than avertical dimension of the frame.
 19. The program according to claim 15,wherein when a page displayed within the frame is designated, a size ofthe designated page is displayed.
 20. The program according to claim 15,further comprising a code for performing the print job.
 21. The programaccording to claim 15, further comprising a code for storing print datain units of print jobs.